}
static void
-update_accel (GtkShortcut *shortcut,
- GtkWidget *widget,
- gboolean set)
+update_accel (GtkShortcut *shortcut,
+ GtkActionMuxer *muxer,
+ gboolean set)
{
GtkShortcutTrigger *trigger;
GtkShortcutAction *action;
- GtkActionMuxer *muxer;
GVariant *target;
const char *action_name;
char *action_and_target;
char *accel = NULL;
+ if (!muxer)
+ return;
+
trigger = gtk_shortcut_get_trigger (shortcut);
action = gtk_shortcut_get_action (shortcut);
!GTK_IS_KEYVAL_TRIGGER (trigger))
return;
- muxer = _gtk_widget_get_action_muxer (widget, set);
- if (!muxer)
- return;
-
target = gtk_shortcut_get_arguments (shortcut);
action_name = gtk_named_action_get_action_name (GTK_NAMED_ACTION (action));
action_and_target = gtk_print_action_and_target (NULL, action_name, target);
{
GtkShortcutController *self = GTK_SHORTCUT_CONTROLLER (controller);
GListModel *shortcuts = self->shortcuts;
+ GtkActionMuxer *muxer;
guint i, p;
GTK_EVENT_CONTROLLER_CLASS (gtk_shortcut_controller_parent_class)->set_widget (controller, widget);
+ muxer = _gtk_widget_get_action_muxer (widget, TRUE);
for (i = 0, p = g_list_model_get_n_items (shortcuts); i < p; i++)
{
GtkShortcut *shortcut = g_list_model_get_item (shortcuts, i);
if (GTK_IS_SHORTCUT (shortcut))
- update_accel (shortcut, widget, TRUE);
+ update_accel (shortcut, muxer, TRUE);
g_object_unref (shortcut);
}
widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (self));
if (widget)
- update_accel (shortcut, widget, TRUE);
+ {
+ GtkActionMuxer *muxer = _gtk_widget_get_action_muxer (widget, TRUE);
+
+ update_accel (shortcut, muxer, TRUE);
+ }
g_list_store_append (G_LIST_STORE (self->shortcuts), shortcut);
g_object_unref (shortcut);
widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (self));
if (widget)
- update_accel (shortcut, widget, FALSE);
+ {
+ GtkActionMuxer *muxer = _gtk_widget_get_action_muxer (widget, FALSE);
+
+ update_accel (shortcut, muxer, FALSE);
+ }
for (i = 0; i < g_list_model_get_n_items (self->shortcuts); i++)
{